package com.qq2008.game.mojie.utils;

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;

/**
 * 加密解密接口
 */
public class HashUtil {

    // 默认密钥
    private final static String DEFAULT_KEY = "";

    /***
     * 转换字符为MD5
     * @param data 要转换的字符串
     * @return 转换完毕后的字符
     */
    public static String toMd5(String data) {
        return DigestUtils.md5Hex(data);
    }

    /***
     * DES加密(使用默认密钥)
     * @param data 要加密的数据
     * @return 加密后的数据
     */
    public static String desEncode(String data) {
        String result = "";

        if (!StringUtils.isEmpty(data)) {
            try {
                result = new DESUtil().encrypt(data);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return result;
    }

    /***
     * DES加密(使用自定义密钥)
     * @param data 要加密的数据
     * @param key  密钥
     * @return 加密后的数据
     */
    public static String desEncode(String data, String key) {
        String result = "";

        if (!StringUtils.isEmpty(data)) {
            try {
                result = new DESUtil(key).encrypt(data);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return result;
    }

    /***
     * DES解密(使用默认密钥)
     * @param data 要解密的数据
     * @return 解密后的数据
     */
    public static String desDecode(String data) {
        String result = "";
        try {
            result = new DESUtil().decrypt(data);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /***
     * DES解密(使用自定义密钥)
     * @param data 要解密的数据
     * @param key  密钥
     * @return 解密后的数据
     */
    public static String desDecode(String data, String key) {
        String result = "";
        try {
            result = new DESUtil(key).decrypt(data);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

}
